home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / emulator / bsvc-1.000 / bsvc-1 / bsvc-1.0.4 / src / Framework / BasicDeviceRegistry.hxx < prev    next >
Text File  |  1995-07-26  |  2KB  |  69 lines

  1. /////////////////////////////////////////////////////////////////////////////// //
  2. // $Id: BasicDeviceRegistry.hxx,v 1.1 1994/02/18 19:48:54 bmott Exp $
  3. /////////////////////////////////////////////////////////////////////////////// //
  4. // BasicDeviceRegistry.hxx
  5. //
  6. //   This abstract base class is used to derive a class that maintains a list
  7. // of al the device in the simulator and allows them to be created.
  8. //
  9. //
  10. // BSVC "A Microprocessor Simulation Framework"
  11. // Copyright (c) 1993
  12. // By: Bradford W. Mott
  13. // October 30,1993
  14. //
  15. ///////////////////////////////////////////////////////////////////////////////
  16. // $Log: BasicDeviceRegistry.hxx,v $
  17. // Revision 1.1  1994/02/18  19:48:54  bmott
  18. // Initial revision
  19. //
  20. ///////////////////////////////////////////////////////////////////////////////
  21.  
  22. #ifndef BASICDEVICEREGISTRY_HXX
  23. #define BASICDEVICEREGISTRY_HXX
  24.  
  25. #include "String.h"
  26.  
  27. class BasicCPU;
  28. class BasicDevice;
  29.  
  30. ///////////////////////////////////////////////////////////////////////////////
  31. // Device Information Type
  32. ///////////////////////////////////////////////////////////////////////////////
  33. typedef struct {
  34.   const char *name;           // The name of the device ("RAM","m6850",etc)
  35.   const char *description;    // A short description of the device
  36.   const char *script;         // UI script to get the device attachment args
  37. } DeviceInformation;
  38.  
  39. ///////////////////////////////////////////////////////////////////////////////
  40. // BasicDeviceRegistry class declaration 
  41. ///////////////////////////////////////////////////////////////////////////////
  42. class BasicDeviceRegistry {
  43.   private:
  44.     // List of devices in the simulator
  45.     const DeviceInformation *devices;
  46.  
  47.     // Number of devices in the simulator
  48.     const int number_of_devices; 
  49.  
  50.   public:
  51.     BasicDeviceRegistry(const DeviceInformation *devs, int num)
  52.                       : devices(devs),
  53.                         number_of_devices(num)
  54.     {};
  55.  
  56.     // Return the number of devices
  57.     inline int NumberOfDevices()
  58.     { return(number_of_devices); }
  59.  
  60.     // Get the device information with the given index (return 1=OK,0=ERROR)
  61.     int Information(int index, DeviceInformation& information);
  62.  
  63.     // Create a device with the given name (return 1=OK,0=ERROR)
  64.     virtual int Create(String& name, String& args, BasicCPU* cpu,
  65.                        BasicDevice* &device)=0; 
  66. };
  67. #endif
  68.  
  69.